--- title: "10-RabbitMQ 安装与配置" created: 2026-01-09 tags: - 博客 --- # RabbitMQ 安装与配置 > **RabbitMQ** 是一个开源的 **消息代理(Message Broker)**,使用 **AMQP(高级消息队列协议)** 进行消息传递。它广泛用于解耦应用程序、提高系统的可扩展性、可靠性和高效性。RabbitMQ > 支持多种协议(如 AMQP、MQTT、STOMP),并提供丰富的客户端支持,适用于各种编程语言。 ## 安装 RabbitMQ RabbitMQ 是基于 **Erlang** 开发的,因此安装 RabbitMQ 之前需要先安装 Erlang。 ### 进入RabbitMQ官网 ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-fada1dfb.png]] ### 查看对应Erlan的版本 ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-f3f4e004.png]] ### 下载Erlang ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-33a06e27.png]] ### 安装Erlang 默认选项,点击“Next" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-ebc6c5da.png]] 修改安装文件夹,点击“Next" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-a2e548e7.png]] install ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-e83b2f34.png]] 安装完成 “Close" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-6f4b859c.png]] ### 配置Erlang系统环境变量 - 右键"此电脑"→ 属性 → 高级系统设置 → 环境变量 - 新建系统变量 `ERLANG_HOME`,值为安装路径如:`D:\develop\Erlang OTP` ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-912a7849.png]] - 编辑 `Path`,添加 `%ERLANG_HOME%\bin` ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-26da9469.png]] - 重启命令行,执行 `erl` 可查看erlang版本 ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-7ee6571d.png]] ### 安装RabbitMQ 默认选项,点击“Next" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-a32fd0dd.png]] 修改安装路径,“Next" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-bb3392b3.png]] 允许两个提示后,继续"Next" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-1761b6ff.png]] 默认勾选启动RabbitMQ服务,点击“Finish" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-933965bf.png]] ### 配置RabbitMQ环境变量 - 右键"此电脑"→ 属性 → 高级系统设置 → 环境变量 - 新建系统变量 `RABBITMQ_SERVER`,值为安装路径如:`D:\develop\RabbitMQ Server\rabbitmq_server-4.2.1` ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-0dc74438.png]] - 编辑 `Path`,添加 `%RABBITMQ_SERVER%\sbin` ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-4162f152.png]] ### 启动RabbitMQ服务 当windows服务显示RabbitMQ正在运行,就表示安装成功,如果没有启动,这里需要右键点击启动 ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-c983bfbf.png]] ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-22816f9f.png]] #### 可能出现的问题 如果启动时报错“错误1067:进程意外终止” ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-6c746181.png]] 应该是端口号“15672”被占用了 先执行:`netstat -ano | findstr 15672` 然后用我们自定义的`killport 15672`释放端口 Windows 端口占用排查与释放 ### 启动RabbitMQ管理插件 进入RabbitMQ的sbin目录 cmd ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-ed475fc7.png]] ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-9dea94a5.png]] 输入命令`rabbitmq-plugins enable rabbitmq_management`来启用管理插件,这将允许你通过web界面来管理RabbitMQ 成功安装输出如下: ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-294d49a5.png]] ### 验证RabbitMQ安装: 打开浏览器 访问 无法访问? 问题可能在:RabbitMQ 管理界面(15672)无法访问问题排查与解决 默认的用户名和密码都是guest (注意:guest用户只允许从localhost访问) ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-c2fa3a49.png]] ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-eaacbac9.png]] ### 配置远程访问 #### 创建用户 由于guest用户只能本地访问,所以我们需要新增一个admin用户,选中超级管理员权限 ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-9dd32044.png]] 六种不同的角色配置 | 角色 | 查看资源 | 创建/删除队列 | 管理策略 policies | 管理用户 | 管理集群/节点 | Web 登录 | | --- | --- | --- | --- | --- | --- | --- | | **Admin** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ 全功能 | | **Monitoring** | ✔ 所有 vhost | ✖ | ✖ | ✖ | ✖ | ✔ 只读 | | **Policymaker** | ✔ | ✖ | ✔ | ✖ | ✖ | ✔ 仅策略 | | **Management** | ✔(自己的 vhost) | ✔ | ✖ | ✖ | ✖ | ✔ 业务管理 | | **Impersonator** | 依赖被 impersonate 用户 | 依赖被 impersonate 用户 | 依赖 | 依赖 | 依赖 | 很少独立登录 | | **None** | ✖ 或仅 Overview | ✖ | ✖ | ✖ | ✖ | 可以登录但无界面内容 | | 使用场景 | 推荐角色 | | --- | --- | | DevOps / 中间件管理员 | Admin | | 查看集群状态的监控系统 | Monitoring | | 设置 TTL/DLX/镜像策略 | Policymaker | | 业务系统自己的 vhost 管理者 | Management | | APP、微服务连接 RabbitMQ | None | | API 网关代理 | Impersonator | #### 用户授权 此时这个账户是没有权限的,需要授权,点击“admin" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-55017fd5.png]] 点击“set permission"和”Set topic permission“ ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-8971376a.png]] 没问题了 ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-b89617c6.png]] ### Virtual Hosts配置 每个Vhost相当于一个相对独立的RabbitMQ服务器,Vhost用作逻辑隔离,分别管理Exchange、Queue和Binding,使得应用安全地运行在不同的Vhost上,相互之间不会干扰。一个实例下可以有多个Vhost,一个Vhost里可以有若干个Exchange和Queue,生产者和消费者连接RabbitMQ实例时,需要指定一个Vhost。详见: #### 创建Virtual Hosts 在顶部栏选中Admin,进入Admin页面,在右侧导航栏选择”Virtual Host“ ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-c9d5a36f.png]] 在Add a new virtual host区域 输入Vhost名称 单击 "Add virtual host" ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-ee3766c4.png]] ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-ce259703.png]] 创建成功 ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-4f30b642.png]] #### 权限分配 点击对应Vhost的名字 进入配置页面 ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-0356d0a9.png]] ![[7-Blog/效率与工具/工具安装与环境配置/assets/image-07804ac7.png]] | 权限字段 | 含义 | 控制的操作 | 示例 `.*` 代表什么 | | --- | --- | --- | --- | | **Configure regexp** | 是否允许用户“声明/创建/删除”资源 | 队列(queue)、交换机(exchange)、绑定 | `.*` = 允许配置所有资源 | | **Write regexp** | 是否允许用户“写入”消息 | 发布消息(publish)到 exchange | `.*` = 可向所有交换机 publish | | **Read regexp** | 是否允许用户“读取”消息 | 从 queue 消费消息(consume) | `.*` = 可从所有队列 consume | [[10-RabbitMQ 安装与配置]]